Code Composition as an Implementation Language for Compilers
نویسندگان
چکیده
Code composition is an effective technique for a compiler to implement complex high-level operations. The developer (i.e., the language designer or compiler writer) provides building blocks consisting of sequences of code written in, e.g., C, that are combined by a composition system to generate the code for such a high-level operation. The composition system can include optimizations not commonly found in compilers; e.g., it can specialize the code sequences based on loop nesting depth or procedure parameters. We describe a composition system, Catacomb, and illustrate its use for mapping array operations onto a parallel system.
منابع مشابه
MATOU: An Implementation of Mode-Automata
Mode-Automata have been proposed in [11]. They introduce, in the domain-specific data-flow language Lustre for reactive systems, a new construct devoted to the expression of running modes. The idea is to associate data-flow programs with the states of an automaton, representing modes. We define flat automata first, and then several composition operators, such as parallel composition and hierarc...
متن کاملCase Study: Compiler Comparison for an Embedded Cryptographical Application
In the recent years, communication with embedded computers has become omnipresent. Mobile phones and personal digital assistants (PDAs) are a part of our business and personnel everyday life. Protecting contents with cryptographic primitives is inevitable and demands for highly efficient cryptographic applications in the sense of time and power consumption. Some cryptosystems allow for high eff...
متن کاملPLDI ' 97 Flick : A Flexible , Optimizing IDL
Interface deenition language (IDL) compilers generate \stub functions" that provide separate communicating processes with the abstraction of local object invocation or procedure call. Unfortunately, these compilers have not kept pace with recent advances in fast network technologies and component-based software design. Typical IDL compilers do little optimization because they assume that interp...
متن کاملFunctional Java Bytecode
We describe the design and implementation of λJVM, a functional representation of Java bytecode that makes data flow explicit, verification simple, and that is well-suited for translation into lower-level representations such as those used in optimizing compilers. It is a good alternative to stack-based Java bytecode for virtual machines or ahead-oftime compilers which optimize methods and prod...
متن کاملPIL: A Platform Independent Language for Retargetable DSLs
Intermediate languages are used in compiler construction to simplify retargeting compilers to multiple machine architectures. In the implementation of domain-specific languages (DSLs), compilers typically generate high-level source code, rather than low-level machine instructions. DSL compilers target a software platform, i.e. a programming language with a set of libraries, deployable on one or...
متن کامل